#ifndef _SYS_LOG_REC_H_
#define _SYS_LOG_REC_H_

#include "FanObj.h"
#include "SysTypes.h"

#define LOG_REC_VTABLE(self)   ((LogRecVTable*)((FanObj*)self)->vtable)


extern Type*    LogRec_classType;
extern VTable*  LogRec_classVTable;


/* [sys::LogRec] Attributes */
struct LogRec
{
  FanObj        super;
};


/* [sys::LogRec] Virtual-table */
typedef struct LogRecVTable
{
  FanObjVTable  super;
} LogRecVTable;


/* [sys::LogRec] Methods and fields */
void            LogRec_make_4(LogRec* self, DateTime* time, LogLevel* level, Str* logName, Str* message);
void            LogRec_make(LogRec* self, DateTime* time, LogLevel* level, Str* logName, Str* message, Err* err);
Str*            LogRec_toStr(Obj self);
DateTime*       LogRec_time(LogRec* self);
LogLevel*       LogRec_level(LogRec* self);
Str*            LogRec_logName(LogRec* self);
Str*            LogRec_msg(LogRec* self);
Err*            LogRec_err(LogRec* self);
void            LogRec_print_0(LogRec* self);
void            LogRec_print(LogRec* self, OutStream* out);


/* [sys::LogRec] Type-system functions */
Type*           LogRec_initType(void);
VTable*         LogRec_initVTable(void);
void            LogRec_initStatic(void);


#endif
